/*!
 * \file KeyListener.h
 * \brief Contains the definition of KeyListener
 * \author CHOUVENC Guillaume, DE CHOULOT Fabien, MATHIEU Fabien
 */

#ifndef KEYLISTENER_H
#define KEYLISTENER_H

#include "bga/system/Listener.h"
#include "bga/window/KeyEvent.h"

/**
 * \namespace bga
 * \brief API namespace
 */
namespace bga
{

/*!
 * \brief Represents a Key Listener
 *
 * This class represents a Key Listener. We find all the functions to handle Key Event
 */
class BOARD_HELL_ENGINE KeyListener : public Listener
{
	public:

        /*!
         * \brief Function to handle a Key Pressed
         * \param event : KeyEvent containing all the information about the sent event
         *
         * Function to handle a Key Pressed. This function is abstract.
         */
		virtual void keyPressed(const bga::KeyEvent &event) = 0;

        /*!
         * \brief Function to handle a Key Released
         * \param event : KeyEvent containing all the information about the sent event
         *
         * Function to handle a Key Released. This function is abstract.
         */
		virtual void keyReleased(const bga::KeyEvent &event) = 0;
	protected:

	private:

};

}

#endif // KEYLISTENER_H

